SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO








CREATE PROC [dbo].[SP_TXMVTO_CNTB_I10]    
/*-------------------------------------------------------------------*/            
/*----- Empresa           : OFISIS S.A.                          ----*/            
/*----- Cliente           : OFISIS S.A.                          ----*/            
/*----- Sistema           : Contabilidad                         ----*/            
/*----- Modulo            : Empresa                              ----*/            
/*----- Programa          : Ajuste Diferencia de cambio Auxiliar ----*/            
/*----- Nombre            : SP_TXMVTO_CNTB_I10                   ----*/            
/*----- Script            : TXMVTO_CNTB                          ----*/            
/*----- Desarrollado por  : Franco Gamboni Koifman               ----*/            
/*----- Fecha             : 23/06/1997                           ----*/            
/*----- Base de Datos     : MS SQL Server                        ----*/            
/*----- Version BD        : 8.0                                  ----*/            
/*-------------------------------------------------------------------*/            
/*-------------------------------------------------------------------*/          
/*----- modificado 1      : Percy Garc?a                         ----*/        
/*----- fecha modif.      : 18/10/2004                           ----*/        
/*----- detalle modif     : GRABA STATUS DE DIF DE CAMBIO EN ASTO----*/          
/*-------------------------------------------------------------------*/       
/*-------------------------------------------------------------------*/          
/*----- modificado 2      : Percy Garc?a                         ----*/        
/*----- fecha modif.      : 03/05/2007                           ----*/        
/*----- detalle modif     : se valido que calcule el tipo de cambio correcto caso cont euros y moneda por ajustar dolares----*/          
/*-------------------------------------------------------------------*/       
/*------------------------------------------------------*/  
/*---Modificado 3 por     : PERCY GARCIA	  ----*/
/*---Fecha Modificaci?n   : 09/05/2007      ----*/
/*---Detalle Modificaci?n : MODIFICAION PARA EL CASO DE AJUSTE EN CONTABILIDAD != 1----*/
/*------------------------------------------------------*/  
/*------------------------------------------------------*/  
/*---Modificado 3 por     : PERCY GARCIA	  ----*/
/*---Fecha Modificaci?n   : 26/06/2009      ----*/
/*---Detalle Modificaci?n : OPTIMIZACION PASO A TEMPORALES----*/
/*------------------------------------------------------*/  
/*-------------------------------------------------------------------*/            
/*----- Drop proc SP_TXMVTO_CNTB_I10                             ----*/            
/*----- Grant all on SP_TXMVTO_CNTB_I10 to PUBLIC                ----*/            
/*----- SP_TXMVTO_CNTB_I10                                       ----*/            
-- SP_TXMVTO_CNTB_I10  '01',1,'001','011','042','0000000001','0000000001','14151','COM','DOL',31,03,2003            
/*-------------------------------------------------------------------*/      
          
--      with encryption
As            
Begin Transaction SP_TXMVTO_CNTB_I10
Declare   

@ISCO_EMPR  TD_VC_002,            
@ISCO_USUA          TD_VC_008,    
@IDFE_USUA          TD_DT_001,    
@INNU_CNTB_EMPR  TD_IN_001_CONT,            
@ISCO_UNID_CNTB       TD_VC_003,            
@ISCO_OPRC_CNTB         TD_VC_003,            
@ISCO_OPRC_PEND         TD_VC_003,            
@ISNU_ASTO  TD_VC_010,            
@ISNU_ASTO_PEND  TD_VC_010,            
@ISCO_CNTA_EMPR  TD_VC_020,            
@ISST_CNTA_NATU  TD_VC_003,            
@ISCO_MONE  TD_VC_003,            
@INNU_DIAS  TD_IN_001,            
@INNU_MESE  TD_IN_002_MESE,            
@INNU_ANNO  TD_IN_004_ANNO , 
          
 @VDFE_VOUC   TD_DT_001,            
 @VDFE_CAMB   TD_DT_001,            
 @CNIM_ORIG_SALD TD_NU_016_004,     
@CNIM_SOLE_SALD TD_NU_016_004,            
 @VNIM_ORIG_MVTO TD_NU_016_004,            
 @VNIM_SOLE_MVTO TD_NU_016_004,            
 @VNTO_SALD_ORIG TD_NU_016_004,            
 @VNTO_SALD_SOLE TD_NU_016_004,            
 @VNTO_AJUS  TD_NU_016_004,            
 @VSCO_CNTA_GANA TD_VC_020,            
 @VSCO_CNTA_PERD TD_VC_020,            
 @VSTI_OPER  TD_VC_003,            
 @VNTO_GANA             TD_NU_016_004,            
 @VNTO_PERD             TD_NU_016_004,            
 @VNTO_GANA_PEND        TD_NU_016_004,            
 @VNTO_PERD_PEND        TD_NU_016_004,            
 @VNNU_SECU  TD_IN_002,             
 @VNNU_SECU_PEND TD_IN_002,             
 @VSCO_MONE_CNTB TD_VC_003,            
 @VSTI_DOCU  TD_VC_003,            
 @VSNU_DOCU  TD_VC_020,            
 @VDFE_DOCU  TD_DT_001,            
 @CSTI_AUXI_EMPR TD_VC_001,            
 @CSCO_AUXI_EMPR TD_VC_020,            
 @VSID_GANA_CAMB   TD_VC_003,            
 @VSID_PERD_CAMB        TD_VC_003,            
 @VNFA_CMPR_REFE TD_NU_015_006,            
 @VNFA_VNTA_REFE TD_NU_015_006,            
 @VNFA_CMPR_CNTA TD_NU_015_006,            
 @VNFA_VNTA_CNTA        TD_NU_009_004,            
 @VNFA_CMPR_CNTB TD_NU_015_006,            
 @VNFA_VNTA_CNTB TD_NU_015_006,            
 @VDFE_ASTO_CNTB        TD_DT_001,            
 @VNFA_CAMB_DIAR        TD_NU_015_006,            
 @VSST_CNTA             TD_VC_001,            
 @VSCO_MONE_CNTA        TD_VC_003,            
 @VSCO_GANA_DIFE TD_VC_020,            
 @VSCO_PERD_DIFE TD_VC_020,            
            
 @VSST_AUXI_EMPR        TD_VC_001,            
 @VSTI_AUXI_DCGA        TD_VC_001,            
 @VSCO_AUXI_DCGA        TD_VC_020,            
 @VSTI_AUXI_DCPE        TD_VC_001,            
 @VSCO_AUXI_DCPE        TD_VC_020,            
            
---- Multimoneda            
 @VSST_CNTA_CAMB        TD_VC_003,            
 @VNIM_MVTO_ORI2        TD_NU_016_004,            
 @VNFA_CAMB         TD_NU_015_006,            
            
 ---- Cursor CU_TXMVTO_CNTB_I10_2            
 @CSCO_EMPR_0002        TD_VC_002,            
 @CNNU_CNTB_EMP2        TD_IN_001_CONT,            
 @VDFE_ASTO_CNT2        TD_DT_001,            
 @CNTI_CAMB_0002        TD_VC_003,            
 @CSCO_MONE_0002        TD_VC_003,            
 @CNFA_CAMB_0002        TD_NU_015_006,            
 @CSTI_OPER_0002        TD_VC_003,            
 @CNIM_MVTO_ORI2        TD_NU_016_004,            
 @CNIM_MVTO_CNT2        TD_NU_016_004,            
 @CSTI_AUXI_EMP2        TD_VC_001,            
 @CSCO_AUXI_EMP2        TD_VC_020,            
 @VNFA_CAMB_0001        TD_NU_015_006,            
 @VNTO_SAOR_0001 TD_NU_016_004,
 @VSST_ORDE_SERV        TD_VC_001,
 @VSCO_ORDE_DCGA        TD_VC_020, @VSCO_ORDE_DCPE        TD_VC_020,              
 @VNNU_MESE_EVAL  Int           


Create Table #TXMVTO_CNTB_EPAE_0003
(
CO_EMPR Varchar(2) NULL, 
NU_CNTB_EMPR Int NULL, 
CO_UNID_CNTB Varchar(3) NULL, 
CO_OPRC_CNTB Varchar(3) NULL, 
NU_ANNO Int NULL,              
NU_MESE Int NULL, 
NU_ASTO Varchar(10) NULL, 
NU_SECU Numeric(18) NULL, 
FE_ASTO_CNTB DateTime NULL, 
CO_CNTA_EMPR Varchar(20) NULL, 
TI_AUXI_EMPR Varchar(1) NULL, 
CO_AUXI_EMPR Varchar(20) NULL,              
TI_DOCU Varchar(3) NULL, 
NU_DOCU Varchar(20) NULL, 
FE_DOCU DateTime NULL, 
TI_CAMB Varchar(3) NULL, 
CO_MONE Varchar(3) NULL, 
FA_CAMB Numeric(15,6) NULL, 
TI_OPER Varchar(3) NULL, 
IM_MVTO_ORIG Numeric(16,4) NULL,          
IM_MVTO_CNTB Numeric(16,4) NULL, 
DE_GLOS Varchar(100) NULL, 
SI_MVTO_CNTB Varchar(3) NULL, 
NO_GIRA Varchar(100) NULL, 
ST_GEST Varchar(1) NULL, 
ST_REDO Varchar(1) NULL, 
FA_CAMB_DIAR Numeric(15,6) NULL, 
ST_DIFE_CAMB Varchar(1) NULL, 
FE_DOCU_VENC DateTime NULL, 
CO_USUA_MODI Varchar(8) NULL, 
FE_USUA_MODI DateTime NULL, 
CO_USUA_CREA Varchar(8) NULL, 
FE_USUA_CREA DateTime NULL, 
ST_MASI Varchar(1) NULL,
CO_ORDE_SERV Varchar(20) NULL
)

Select Top 1 
@ISCO_EMPR = CO_EMPR,        
@ISCO_USUA = CO_USUA,    
@IDFE_USUA = FE_USUA,    
@INNU_CNTB_EMPR = NU_CNTB_EMPR,              
@ISCO_UNID_CNTB = CO_UNID_CNTB,              
@ISCO_OPRC_CNTB = CO_OPRC_CNTB,              
@ISCO_OPRC_PEND = CO_OPRC_PEND,              
@ISNU_ASTO  = NU_ASTO,              
@ISNU_ASTO_PEND = NU_ASTO_PEND,            
@ISCO_CNTA_EMPR = CO_CNTA_EMPR,              
@ISST_CNTA_NATU = ST_CNTA_NATU,              
@ISCO_MONE  = CO_MONE,              
@INNU_DIAS  = NU_DIAS,              
@INNU_MESE  = NU_MESE,              
@INNU_ANNO = NU_ANNO 
From #TWPARA_EPAE
             
 /* Selecciona las cuentas de Ganancia y Perdida */            
            
--- Inicializar-------------            
 Select @VSTI_AUXI_DCGA = Null            
 Select @VSCO_AUXI_DCGA = Null            
 Select @VSTI_AUXI_DCPE = Null            
 Select @VSCO_AUXI_DCPE = Null            
            
 Select @VSCO_MONE_CNTB = CO_MONE,            
        @VSID_GANA_CAMB = ID_GANA_CAMB,            
        @VSID_PERD_CAMB = ID_PERD_CAMB             
 From TTCNTB_EMPR            
 Where CO_EMPR = @ISCO_EMPR             
 and NU_CNTB_EMPR = @INNU_CNTB_EMPR            

Select @VSCO_ORDE_DCPE = NULL
Select @VSCO_ORDE_DCGA = NULL
            
 Select @VSST_AUXI_EMPR = 'N'            
 Select @VSST_ORDE_SERV = 'N'                              
 Select @VSCO_CNTA_GANA = t1.CO_CNTA_EMPR,            
        @VSST_AUXI_EMPR = t2.ST_AUXI_EMPR,
        @VSST_ORDE_SERV = t2.ST_ORDE_SERV            
 From TTIDEN_CNTA t1, TMPLAN_ANNO t2            
 Where  t1.CO_EMPR = @ISCO_EMPR             
 And     t1.NU_CNTB_EMPR = @INNU_CNTB_EMPR             
 And     t1.ID_CNTA = @VSID_GANA_CAMB            
 And     t2.CO_EMPR = t1.CO_EMPR            
 And     t2.CO_CNTA_EMPR = t1.CO_CNTA_EMPR            
            
 If @VSST_AUXI_EMPR = 'S'            
   Begin            
   Select @VSTI_AUXI_DCGA = NullIf(Rtrim(TI_AUXI_DCGA), ''),            
            @VSCO_AUXI_DCGA = NullIf(Rtrim(CO_AUXI_DCGA), '')            
     From   TMPARA_CONT            
     Where  CO_EMPR = @ISCO_EMPR             
   End    

 If @VSST_ORDE_SERV = 'S'                              
   Begin                              
     Select @VSCO_ORDE_DCGA = NullIf(Rtrim(CO_ORDE_DCGA), '')             
     From   TMPARA_CONT                              
     Where  CO_EMPR = @ISCO_EMPR                               
   End                                      
          
 Select @VSST_AUXI_EMPR = 'N'            
 Select @VSST_ORDE_SERV = 'N'                              
 Select @VSCO_CNTA_PERD = t1.CO_CNTA_EMPR,            
        @VSST_AUXI_EMPR = t2.ST_AUXI_EMPR,
        @VSST_ORDE_SERV = t2.ST_ORDE_SERV            
 From TTIDEN_CNTA t1, TMPLAN_ANNO t2            
 Where t1.CO_EMPR = @ISCO_EMPR             
 And   t1.NU_CNTB_EMPR = @INNU_CNTB_EMPR             
 And   t1.ID_CNTA = @VSID_PERD_CAMB            
 And   t2.CO_EMPR = t1.CO_EMPR            
 And   t2.CO_CNTA_EMPR = t1.CO_CNTA_EMPR            
            
 If @VSST_AUXI_EMPR = 'S'            
   Begin            
     Select @VSTI_AUXI_DCPE = NullIf(Rtrim(TI_AUXI_DCPE), ''),            
            @VSCO_AUXI_DCPE = NullIf(Rtrim(CO_AUXI_DCPE), '')            
     From   TMPARA_CONT            
     Where  CO_EMPR = @ISCO_EMPR             
   End            

 If @VSST_ORDE_SERV = 'S'                              
   Begin                              
     Select @VSCO_ORDE_DCPE = NullIf(Rtrim(CO_ORDE_DCPE), '')             
     From   TMPARA_CONT                              
     Where  CO_EMPR = @ISCO_EMPR                               
   End                                
            
-- Si hay amarre con Cuentas de Dif De cambio en la TMPLAN_EMPR. Toma esas cuentas------------            
 Select @VSCO_GANA_DIFE = Ltrim(Rtrim(IsNull(CO_GANA_DIFE,''))),            
        @VSCO_PERD_DIFE = Ltrim(Rtrim(IsNull(CO_PERD_DIFE,'')))            
 From  TMPLAN_EMPR            
 Where CO_EMPR = @ISCO_EMPR            
 And   CO_CNTA_EMPR = @ISCO_CNTA_EMPR            
            
 If @VSCO_GANA_DIFE <> '' And @VSCO_PERD_DIFE <> ''            
   Begin            
     Select @VSCO_CNTA_GANA = @VSCO_GANA_DIFE            
     Select @VSCO_CNTA_PERD = @VSCO_PERD_DIFE            
   End            
            
--------------------------------------------------------
/* Comentario:Construye la fecha de inicio para calcular la informacion de movimientos */
 Select @VDFE_VOUC = CONVERT(DATETIME, CONVERT(Char(02),@INNU_DIAS) + '/' + CONVERT(Char(02),@INNU_MESE) + '/' + CONVERT(CHAR(4),@INNU_ANNO), 103)
 Select @VDFE_CAMB = CONVERT(DATETIME, CONVERT(Char(02),@INNU_DIAS) + '/' + CONVERT(Char(02),@INNU_MESE) + '/' + CONVERT(CHAR(4),@INNU_ANNO), 103)

 Select @VSCO_MONE_CNTA = CO_MONE
 From TMPLAN_EMPR
 Where CO_EMPR = @ISCO_EMPR
 And CO_CNTA_EMPR = @ISCO_CNTA_EMPR
 And NU_ANNO = 9999

/*----------- Para obtener el factor de la moneda de la cuenta -------*/            
 SELECT @VNFA_CMPR_CNTA = FA_CAMB_CMPR, @VNFA_VNTA_CNTA = FA_CAMB_VNTA,@VNNU_MESE_EVAL = NU_MESE          
 FROM TCFACT_CIER
 WHERE CO_MONE = @VSCO_MONE_CNTA
 And NU_ANNO = @INNU_ANNO
 And NU_MESE = @INNU_MESE
            
/*------------- Para obtener el factor de la moneda de la contabilidad ----------*/            
 SELECT @VNFA_CMPR_CNTB = FA_CAMB_CMPR, @VNFA_VNTA_CNTB = FA_CAMB_VNTA
 FROM TCFACT_CIER
 WHERE CO_MONE = @VSCO_MONE_CNTB
 And NU_ANNO = @INNU_ANNO
 And NU_MESE = @INNU_MESE

 if @VNFA_CMPR_CNTA is NULL            
   Select @VNFA_CMPR_CNTA = 1.00            

 if @VNFA_VNTA_CNTA is NULL            
   Select @VNFA_VNTA_CNTA = 1.00            
            
 if @VNFA_CMPR_CNTB is NULL        
   Select @VNFA_CMPR_CNTB = 1.00            
            
 if @VNFA_VNTA_CNTB is NULL            
   Select @VNFA_VNTA_CNTB = 1.00            

 -- Se multiplica ya que en moneda de la cuenta o en moneda de la contabilidad habra F.Cambio no en ambas a la vez  
 -- de la manera anterior no funcionaba para una contabilidad que NO es Soles (LMGP)  
/*
 Select @VNFA_CMPR_REFE = @VNFA_CMPR_CNTA * @VNFA_CMPR_CNTB            
 Select @VNFA_VNTA_REFE = @VNFA_VNTA_CNTA * @VNFA_VNTA_CNTB    */        

If @VNNU_MESE_EVAL IS NOT NULL
 Begin           
 Select @VNFA_CMPR_REFE = @VNFA_CMPR_CNTA --* @VNFA_CMPR_CNTB          
 Select @VNFA_VNTA_REFE = @VNFA_VNTA_CNTA--- * @VNFA_VNTA_CNTB          
 End 
Else 
 Begin           
 Select @VNFA_CMPR_REFE = @VNFA_CMPR_CNTB          
 Select @VNFA_VNTA_REFE = @VNFA_VNTA_CNTB          
 End 
            
/*---------------------------------------------------------------------------------------------------------------------------------------------------------------*/            
 If @VNFA_CMPR_REFE IS NULL            
   Select @VNFA_CMPR_REFE = 1.00            
            
 If @VNFA_VNTA_REFE IS NULL            
   Select @VNFA_VNTA_REFE = 1.00            
            
 /*Seccion para cuentas que tengan Auxiliar */            
 Select @VNNU_SECU   = 1            
 Select @VNNU_SECU_PEND = 1            
 Select @CNIM_ORIG_SALD = 0            
 Select @CNIM_SOLE_SALD = 0      
 Select @VNIM_ORIG_MVTO = 0            
 Select @VNIM_SOLE_MVTO = 0            
 Select @VNTO_GANA = 0            
 Select @VNTO_PERD = 0            
 Select @VNTO_GANA_PEND = 0            
 Select @VNTO_PERD_PEND = 0            
 Select @VNTO_SALD_ORIG = 0             
 Select @VNTO_SALD_SOLE = 0            
 Select @VNTO_AJUS = 0            
            
----- Se crean tablas temporales para Multimoneda            
---- #TWMVTO_CNT1 guarda data para la conversi>n de importe en moneda contabilidad            
 Create table #TWMVTO_CNT1            
 (CO_EMPR       varchar(2),            
  NU_CNTB_EMPR  integer,            
  FE_ASTO_CNTB  datetime,            
  TI_CAMB       varchar(3),            
  CO_MONE       varchar(3),            
  FA_CAMB       numeric(15,6),            
  TI_OPER       varchar(3),            
  IM_MVTO_ORIG  numeric(16,4),            
  IM_MVTO_CNTB  numeric(16,4),            
  TI_AUXI_EMPR  varchar(1),            
  CO_AUXI_EMPR  varchar(20) )            
            
 ---- #TWMVTO_CNT2 guarda data para cursor CU_TXMVTO_CNTB_I10_1            
/*
 Create table #TWMVTO_CNT2            
 (TI_AUXI_EMP2  varchar(1),            
  CO_AUXI_EMP2  varchar(20),            
  TI_OPER_0002  varchar(3),            
  IM_MVTO_ORI2  numeric(16,4),            
  IM_MVTO_CNT2  numeric(16,4) )            
*/
   
 ---- Borra data de tablas temporales            
--- Delete from #TWMVTO_CNT1            
--- Delete from #TWMVTO_CNT2            
            
 ---- Insert Select con las condiciones del cursor CU_TXMVTO_CNTB_I10_1            
 Insert into #TWMVTO_CNT1 (CO_EMPR, NU_CNTB_EMPR, FE_ASTO_CNTB, TI_CAMB, CO_MONE, FA_CAMB,            
        TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, TI_AUXI_EMPR, CO_AUXI_EMPR)            
 Select CO_EMPR, @INNU_CNTB_EMPR, FE_ASTO_CNTB, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER,            
        IM_MVTO_ORIG, IM_MVTO_CNTB, TI_AUXI_EMPR, CO_AUXI_EMPR            
 From  TXMVTO_CNTB --( index = ITXMVTO_CNTB_02 )   /* (3)*/            
 Where CO_EMPR      = @ISCO_EMPR            
 and   NU_CNTB_EMPR = @INNU_CNTB_EMPR            
 and   NU_ANNO      = @INNU_ANNO            
 and   NU_MESE      <= @INNU_MESE            
 and   CO_CNTA_EMPR = @ISCO_CNTA_EMPR             
 and   SI_MVTO_CNTB = 'APR'            
--- Order By TI_AUXI_EMPR, CO_AUXI_EMPR            
            
 ---- Cursor para convertir importe original en importe moneda contabilidad            
/*
 Declare CU_TXMVTO_CNTB_I10_2 Cursor            
 For             
   Select CO_EMPR, NU_CNTB_EMPR, FE_ASTO_CNTB, TI_CAMB, CO_MONE, FA_CAMB,            
          TI_OPER, Isnull(IM_MVTO_ORIG, 0.00), Isnull(IM_MVTO_CNTB, 0.00),             
          TI_AUXI_EMPR, CO_AUXI_EMPR            
   From  #TWMVTO_CNT1            
   Order by TI_AUXI_EMPR, CO_AUXI_EMPR            
 Open CU_TXMVTO_CNTB_I10_2            
 Fetch CU_TXMVTO_CNTB_I10_2 Into @CSCO_EMPR_0002, @CNNU_CNTB_EMP2, @VDFE_ASTO_CNT2,            
 @CNTI_CAMB_0002, @CSCO_MONE_0002, @CNFA_CAMB_0002, @CSTI_OPER_0002, @CNIM_MVTO_ORI2,            
 @CNIM_MVTO_CNT2, @CSTI_AUXI_EMP2, @CSCO_AUXI_EMP2            
            
 While @@Fetch_status = 0            
   Begin            
     Select @VNIM_MVTO_ORI2 = @CNIM_MVTO_CNT2            
            
     Insert into #TWMVTO_CNT2 VALUES(@CSTI_AUXI_EMP2, @CSCO_AUXI_EMP2, @CSTI_OPER_0002,             
            @CNIM_MVTO_ORI2, @VNIM_MVTO_ORI2 )            
             
     Fetch CU_TXMVTO_CNTB_I10_2 Into @CSCO_EMPR_0002, @CNNU_CNTB_EMP2, @VDFE_ASTO_CNT2,            
        @CNTI_CAMB_0002, @CSCO_MONE_0002, @CNFA_CAMB_0002, @CSTI_OPER_0002, @CNIM_MVTO_ORI2,            
        @CNIM_MVTO_CNT2, @CSTI_AUXI_EMP2, @CSCO_AUXI_EMP2            
   End 
 Close CU_TXMVTO_CNTB_I10_2            
 Deallocate CU_TXMVTO_CNTB_I10_2            
*/             
---- Proceso normal, solo se cambio la tabla del select del cursor,            
---- tiene las mismas columnas pero con el importe de la moneda de la contabilidad            
 Declare CU_TXMVTO_CNTB_I10_1 Cursor            
   For             
     Select   TI_AUXI_EMPR, CO_AUXI_EMPR,            
        Isnull(SUM( ( ROUND( ((ASCII(TI_OPER)/67)* Isnull(IM_MVTO_ORIG, 0)),2)  - ROUND(( (65/ASCII(TI_OPER))* Isnull(IM_MVTO_ORIG, 0) ),2) ) ), 0),            
        Isnull(SUM( ( ROUND( ((ASCII(TI_OPER)/67)* Isnull(IM_MVTO_CNTB, 0) ),2) - ROUND(( (65/ASCII(TI_OPER))* Isnull(IM_MVTO_CNTB, 0) ),2))), 0)             
     From #TWMVTO_CNT1            
     Group By TI_AUXI_EMPR, CO_AUXI_EMPR            
---     Order By TI_AUXI_EMPR, CO_AUXI_EMPR            
            
   Open CU_TXMVTO_CNTB_I10_1            
   Fetch CU_TXMVTO_CNTB_I10_1 Into @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR, @CNIM_ORIG_SALD, @CNIM_SOLE_SALD            
            
 While @@Fetch_status = 0            
   Begin            
     Select @VNTO_SALD_ORIG = 0            
     Select @VNTO_SALD_SOLE  = 0            
     Select @VNTO_AJUS = 0            
     Select @VNTO_SALD_ORIG = ROUND(@CNIM_ORIG_SALD,2)            
     Select @VNTO_SALD_SOLE  = ROUND(@CNIM_SOLE_SALD,2)            
            
     Select @VNTO_SAOR_0001 = 0            
     Select @VNFA_CAMB_0001 = 1            
            
     If @ISST_CNTA_NATU = 'COM'            
        Select  @VNFA_CAMB_0001 =  @VNFA_CMPR_REFE            
     Else            
        Select  @VNFA_CAMB_0001 =  @VNFA_VNTA_REFE            
               
     Exec SP_CONV_AJUS_Q01 @ISCO_EMPR, @VSCO_MONE_CNTA, @INNU_CNTB_EMPR, @ISST_CNTA_NATU,             
          @VNFA_CAMB_0001, @VNTO_SALD_ORIG, @INNU_ANNO, @INNU_MESE, @VNTO_SAOR_0001 Output            
            
     Select @VNTO_SALD_ORIG = @VNTO_SAOR_0001            
            
    Select @VNTO_AJUS = ROUND(@VNTO_SALD_ORIG,2) - ROUND(@VNTO_SALD_SOLE,2)            
            
   If @VNTO_AJUS != 0.00            
     Begin             
       If( @VNTO_SALD_ORIG > 0.00 ) And ( @VNTO_SALD_SOLE > 0.00 )             
         Begin               
           Select @VNTO_AJUS = ROUND(@VNTO_SALD_SOLE,2) - ROUND(@VNTO_SALD_ORIG,2)            
           If @VNTO_AJUS > 0.00            
             Begin              
               Select @VNTO_PERD_PEND = @VNTO_PERD_PEND + ROUND(@VNTO_AJUS,2)            
               /*Comentario : Insercion del Asiento de Ajuste*/            
               Insert Into #TXMVTO_CNTB_EPAE_0003 ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,            
             NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,           
               TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG,            
               IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, FA_CAMB_DIAR, ST_DIFE_CAMB, 
	       CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, ST_MASI)
               Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_PEND, @INNU_ANNO,            
               @INNU_MESE, @ISNU_ASTO_PEND, @VNNU_SECU_PEND, @VDFE_VOUC, @ISCO_CNTA_EMPR, @CSTI_AUXI_EMPR,            
               @CSCO_AUXI_EMPR, NULL, NULL, NULL, 'PAC', @VSCO_MONE_CNTB, 1.000000, 'ABO', 0.00,            
               @VNTO_AJUS, 'AJUST x DIF.CAMBIO', 'APR','  ', 'N', 'N', 1.000000, 'S', 
	       @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, 'S')            
               If @@ERROR != 0             
                 Begin             
                   Close CU_TXMVTO_CNTB_I10_1            
                   Deallocate CU_TXMVTO_CNTB_I10_1            
                   Rollback Tran            
                   Return            
                 End            
             If @ISCO_OPRC_CNTB != @ISCO_OPRC_PEND                     
                    Begin           
                    Select @VNNU_SECU_PEND = @VNNU_SECU_PEND + 1              
                    End             
             Else           
                    Begin           
                    Select @VNNU_SECU = @VNNU_SECU + 1              
                    Select @VNNU_SECU_PEND = @VNNU_SECU              
                    End           
             End /* If @VNTO_AJUS > 0 */            
           If @VNTO_AJUS < 0.00            
             Begin             
               /*Comentario : Insercion del Asiento de Ajuste*/            
               Insert Into #TXMVTO_CNTB_EPAE_0003 ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,            
               NU_MESE, NU_ASTO, NU_SECU,FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,            
               TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG,            
               IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, FA_CAMB_DIAR, ST_DIFE_CAMB, 
	       CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, ST_MASI)
               Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_PEND, @INNU_ANNO,            
               @INNU_MESE, @ISNU_ASTO_PEND, @VNNU_SECU_PEND, @VDFE_VOUC, @ISCO_CNTA_EMPR, @CSTI_AUXI_EMPR,            
               @CSCO_AUXI_EMPR, NULL, NULL, NULL,'PAC', @VSCO_MONE_CNTB, 1.000000, 'CAR', 0.00,            
               abs(@VNTO_AJUS), 'AJUST x DIF.CAMBIO','APR', '  ', 'N', 'N', 1.000000, 'S', 
	       @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, 'S')
               If @@ERROR != 0            
                 Begin             
                   Close CU_TXMVTO_CNTB_I10_1            
                   Deallocate CU_TXMVTO_CNTB_I10_1            
                   Rollback Tran             
                   Return            
                 End            
             If @ISCO_OPRC_CNTB != @ISCO_OPRC_PEND                          
                    Begin           
                    Select @VNNU_SECU_PEND = @VNNU_SECU_PEND + 1              
                    End             
             Else           
                    Begin           
                    Select @VNNU_SECU = @VNNU_SECU + 1              
                    Select @VNNU_SECU_PEND = @VNNU_SECU              
      End           
               Select @VNTO_GANA_PEND = @VNTO_GANA_PEND - abs(ROUND(@VNTO_AJUS,2))            
             End /* If @VNTO_AJUS < 0 */            
         End  /* If( @VNTO_SALD_ORIG > 0 ) And ( @VNTO_SALD_SOLE > 0 ) */            
            
       If( @VNTO_SALD_ORIG > 0.00 ) And ( @VNTO_SALD_SOLE < 0.00 )            
        Begin            
           Select @VNTO_AJUS = abs(ROUND(@VNTO_SALD_SOLE,2)) + ROUND(@VNTO_SALD_ORIG,2)            
           If @VNTO_AJUS > 0.00            
             Begin            
               /*Comentario : Insercion del Asiento de Ajuste */            
               Insert Into #TXMVTO_CNTB_EPAE_0003 ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,            
               NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,            
               TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG,            
               IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, FA_CAMB_DIAR, ST_DIFE_CAMB, 
	       CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, ST_MASI)
               Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_PEND, @INNU_ANNO,            
               @INNU_MESE, @ISNU_ASTO_PEND, @VNNU_SECU_PEND, @VDFE_VOUC, @ISCO_CNTA_EMPR, @CSTI_AUXI_EMPR,            
               @CSCO_AUXI_EMPR, NULL, NULL, NULL, 'PAC', @VSCO_MONE_CNTB, 1.000000, 'CAR', 0.00,            
               @VNTO_AJUS, 'AJUST x DIF.CAMBIO', 'APR', '  ', 'N', 'N', 1.000000, 'S', 
	       @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, 'S')
               If @@ERROR != 0                 
                 Begin             
                   Close CU_TXMVTO_CNTB_I10_1            
                   Deallocate CU_TXMVTO_CNTB_I10_1            
                   Rollback Tran                                                                                                                                                             
                   Return            
                 End            
             If @ISCO_OPRC_CNTB != @ISCO_OPRC_PEND                          
                    Begin           
                    Select @VNNU_SECU_PEND = @VNNU_SECU_PEND + 1              
                    End             
             Else           
                    Begin           
                    Select @VNNU_SECU = @VNNU_SECU + 1              
            Select @VNNU_SECU_PEND = @VNNU_SECU              
                    End           
               Select @VNTO_GANA_PEND = @VNTO_GANA_PEND - ROUND(@VNTO_AJUS,2)            
             End /* If @VNTO_AJUS > 0 */            
           If @VNTO_AJUS < 0.00            
             Begin            
               Select @VNTO_PERD_PEND = @VNTO_PERD_PEND + abs(ROUND(@VNTO_AJUS,2))            
               /*Comentario : Insercion del Asiento de Ajuste*/            
               Insert Into #TXMVTO_CNTB_EPAE_0003 ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,  
               NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,            
               TI_DOCU, NU_DOCU,FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG,            
               IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, FA_CAMB_DIAR, ST_DIFE_CAMB,   
               CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, ST_MASI)
               Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_PEND, @INNU_ANNO,            
               @INNU_MESE, @ISNU_ASTO_PEND, @VNNU_SECU_PEND, @VDFE_VOUC, @ISCO_CNTA_EMPR, @CSTI_AUXI_EMPR,            
               @CSCO_AUXI_EMPR, NULL, NULL, NULL,'PAC', @VSCO_MONE_CNTB, 1.000000, 'ABO', 0.00,            
               abs(@VNTO_AJUS), 'AJUST x DIF.CAMBIO', 'APR','  ', 'N', 'N', 1.000000, 'S',   
               @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, 'S')
               If @@ERROR != 0                 
                 Begin             
                   Close CU_TXMVTO_CNTB_I10_1            
                   Deallocate CU_TXMVTO_CNTB_I10_1            
                   Rollback Tran             
                   Return            
                 End            
             If @ISCO_OPRC_CNTB != @ISCO_OPRC_PEND                          
                  Begin           
                    Select @VNNU_SECU_PEND = @VNNU_SECU_PEND + 1              
                    End             
             Else           
                    Begin           
                    Select @VNNU_SECU = @VNNU_SECU + 1              
                    Select @VNNU_SECU_PEND = @VNNU_SECU              
         End           
             End /* If @VNTO_AJUS < 0 */        
         End /*If( @VNTO_SALD_ORIG > 0 ) And ( @VNTO_SALD_SOLE < 0 ) */            
            
       If( @VNTO_SALD_ORIG < 0.00 ) And ( @VNTO_SALD_SOLE > 0.00 )            
         Begin            
           Select @VNTO_AJUS =  (0.00 - ROUND(@VNTO_SALD_SOLE,2)) + ROUND(@VNTO_SALD_ORIG,2)            
           If @VNTO_AJUS > 0.00            
             Begin            
               /*Comentario : Insercion del Asiento de Ajuste*/            
                Insert Into #TXMVTO_CNTB_EPAE_0003 ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,            
                NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,            
                TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG,             
                IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, FA_CAMB_DIAR, ST_DIFE_CAMB, 
	        CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, ST_MASI)
                Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_PEND, @INNU_ANNO,            
                @INNU_MESE, @ISNU_ASTO_PEND, @VNNU_SECU_PEND, @VDFE_VOUC, @ISCO_CNTA_EMPR, @CSTI_AUXI_EMPR,            
                @CSCO_AUXI_EMPR, NULL, NULL, NULL, 'PAC', @VSCO_MONE_CNTB, 1.000, 'CAR', 0.00,            
                @VNTO_AJUS, 'AJUST x DIF.CAMBIO', 'APR',  '  ', 'N', 'N', 1.000000, 'S', 
		@ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, 'S')
               If @@ERROR != 0             
               Begin             
                   Close CU_TXMVTO_CNTB_I10_1            
          Deallocate CU_TXMVTO_CNTB_I10_1            
                   Rollback Tran             
                   Return            
                 End            
             If @ISCO_OPRC_CNTB != @ISCO_OPRC_PEND                          
                    Begin           
                    Select @VNNU_SECU_PEND = @VNNU_SECU_PEND + 1              
                    End             
             Else           
                    Begin           
                    Select @VNNU_SECU = @VNNU_SECU + 1              
                    Select @VNNU_SECU_PEND = @VNNU_SECU              
            End           
               Select @VNTO_GANA_PEND = @VNTO_GANA_PEND - ROUND(@VNTO_AJUS,2)                
             End /* If @VNTO_AJUS > 0 */            
           If @VNTO_AJUS < 0.00            
             Begin            
               Select @VNTO_PERD_PEND = @VNTO_PERD_PEND + abs(ROUND(@VNTO_AJUS,2))            
               /*Comentario : Insercion del Asiento de Ajuste*/            
               Insert Into #TXMVTO_CNTB_EPAE_0003 ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,            
               NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,            
               TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG,             
               IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, FA_CAMB_DIAR, ST_DIFE_CAMB, 
	       CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, ST_MASI)
               Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_PEND, @INNU_ANNO,            
               @INNU_MESE, @ISNU_ASTO_PEND, @VNNU_SECU_PEND, @VDFE_VOUC, @ISCO_CNTA_EMPR, @CSTI_AUXI_EMPR,            
               @CSCO_AUXI_EMPR, NULL, NULL, NULL, 'PAC', @VSCO_MONE_CNTB, 1.000000, 'ABO', 0.00,             
               abs(@VNTO_AJUS), 'AJUST x DIF.CAMBIO', 'APR',  '  ', 'N', 'N', 1.000000, 'S', 
               @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, 'S')
               If @@ERROR != 0                 
                 Begin             
                   Close CU_TXMVTO_CNTB_I10_1            
                   Deallocate CU_TXMVTO_CNTB_I10_1            
                   Rollback Tran             
                   Return            
                 End            
             If @ISCO_OPRC_CNTB != @ISCO_OPRC_PEND                          
                    Begin          
                    Select @VNNU_SECU_PEND = @VNNU_SECU_PEND + 1              
                    End             
             Else           
                    Begin           
                    Select @VNNU_SECU = @VNNU_SECU + 1              
                    Select @VNNU_SECU_PEND = @VNNU_SECU              
                    End           
             End /* If @VNTO_AJUS < 0      */            
         End /*If( @VNTO_SALD_ORIG < 0 ) And ( @VNTO_SALD_SOLE > 0 )  */            
            
       If( @VNTO_SALD_ORIG < 0.00 ) And ( @VNTO_SALD_SOLE < 0.00 )               Begin            
           Select @VNTO_AJUS =  ROUND(@VNTO_SALD_SOLE,2) - ROUND(@VNTO_SALD_ORIG,2)            
           If @VNTO_AJUS > 0.00            
             Begin            
               Select @VNTO_PERD_PEND = @VNTO_PERD_PEND + ROUND(@VNTO_AJUS,2)            
               /*Comentario : Insercion del Asiento de Ajuste*/            
               Insert Into #TXMVTO_CNTB_EPAE_0003 ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,            
                NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,            
                TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG,            
                IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, FA_CAMB_DIAR, ST_DIFE_CAMB, 
	        CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, ST_MASI)
               Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_PEND, @INNU_ANNO,            
                @INNU_MESE, @ISNU_ASTO_PEND, @VNNU_SECU_PEND, @VDFE_VOUC, @ISCO_CNTA_EMPR, @CSTI_AUXI_EMPR,            
                @CSCO_AUXI_EMPR, NULL, NULL, NULL, 'PAC', @VSCO_MONE_CNTB, 1.000000, 'ABO', 0.00,            
                @VNTO_AJUS, 'AJUST x DIF.CAMBIO', 'APR', '  ', 'N', 'N', 1.000000, 'S', 
		@ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, 'S')
               If @@ERROR != 0                 
   		Begin           
                   Close CU_TXMVTO_CNTB_I10_1            
                   Deallocate CU_TXMVTO_CNTB_I10_1            
                   Rollback Tran             
                   Return            
                End            
             If @ISCO_OPRC_CNTB != @ISCO_OPRC_PEND                          
                Begin           
                    Select @VNNU_SECU_PEND = @VNNU_SECU_PEND + 1              
                End             
             Else           
                Begin           
                    Select @VNNU_SECU = @VNNU_SECU + 1              
                    Select @VNNU_SECU_PEND = @VNNU_SECU              
                End           
             End /* If @VNTO_AJUS > 0 */            
            
           If @VNTO_AJUS < 0.00            
             Begin            
               /*Comentario : Insercion del Asiento de Ajuste*/            
               Insert Into #TXMVTO_CNTB_EPAE_0003 ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,            
                NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,            
              TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG,            
                IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, FA_CAMB_DIAR, ST_DIFE_CAMB, 
		CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, ST_MASI)
               Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_PEND, @INNU_ANNO,            
                @INNU_MESE, @ISNU_ASTO_PEND, @VNNU_SECU_PEND, @VDFE_VOUC, @ISCO_CNTA_EMPR, @CSTI_AUXI_EMPR,            
                @CSCO_AUXI_EMPR, NULL, NULL, NULL, 'PAC', @VSCO_MONE_CNTB, 1.000000, 'CAR', 0.00,            
                abs(@VNTO_AJUS), 'AJUST x DIF.CAMBIO', 'APR', '  ', 'N', 'N', 1.000000, 'S', 
		@ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, 'S')
               If @@ERROR != 0                 
                 Begin             
                   Close CU_TXMVTO_CNTB_I10_1            
                   Deallocate CU_TXMVTO_CNTB_I10_1            
                   Rollback Tran             
                   Return            
                 End            
             If @ISCO_OPRC_CNTB != @ISCO_OPRC_PEND                          
                    Begin           
                    Select @VNNU_SECU_PEND = @VNNU_SECU_PEND + 1              
                    End             
             Else           
                    Begin           
                    Select @VNNU_SECU = @VNNU_SECU + 1              
                    Select @VNNU_SECU_PEND = @VNNU_SECU              
                    End           
               Select @VNTO_GANA_PEND = @VNTO_GANA_PEND - abs(ROUND(@VNTO_AJUS,2))                
             End /* If @VNTO_AJUS < 0      */            
         End  /*If( @VNTO_SALD_ORIG < 0 ) And ( @VNTO_SALD_SOLE > 0 )  */                  
            
       If( @VNTO_SALD_ORIG = 0.00 ) And ( @VNTO_SALD_SOLE > 0.00 )            
         Begin            
           Select @VNTO_AJUS =  ROUND(@VNTO_SALD_SOLE,2)            
           If @VNTO_AJUS > 0.00            
             Begin            
             Select @VNTO_PERD = @VNTO_PERD + ROUND(@VNTO_AJUS,2)               
             /*Comentario : Insercion del Asiento de Ajuste*/ 
             Insert Into #TXMVTO_CNTB_EPAE_0003 ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,            
             NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,            
             TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG,            
             IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, FA_CAMB_DIAR, ST_DIFE_CAMB, 
	     CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, ST_MASI)
             Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @INNU_ANNO,      
             @INNU_MESE, @ISNU_ASTO, @VNNU_SECU, @VDFE_VOUC, @ISCO_CNTA_EMPR, @CSTI_AUXI_EMPR,            
             @CSCO_AUXI_EMPR, NULL, NULL, NULL, 'PAC', @VSCO_MONE_CNTB, 1.000000, 'ABO', 0.00,            
             @VNTO_AJUS, 'AJUST x DIF.CAMBIO', 'APR', '  ', 'N', 'N', 1.000000, 'S', 
             @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, 'S')
             If @@ERROR != 0      
               Begin             
                 Close CU_TXMVTO_CNTB_I10_1            
                 Deallocate CU_TXMVTO_CNTB_I10_1            
                 Rollback Tran             
                 Return            
               End            
             Select @VNNU_SECU = @VNNU_SECU + 1            
               If @ISCO_OPRC_CNTB = @ISCO_OPRC_PEND                          
               Begin          
               Select @VNNU_SECU_PEND = @VNNU_SECU          
               End           
       End            
       End /*If( @VNTO_SALD_ORIG = 0 ) And ( @VNTO_SALD_SOLE > 0 )  */             
            
       If( @VNTO_SALD_ORIG = 0.00 ) And ( @VNTO_SALD_SOLE < 0.00 )            
         Begin            
           Select @VNTO_AJUS =  ROUND(@VNTO_SALD_SOLE,2)            
           If @VNTO_AJUS < 0.00            
             Begin            
               /* Insercion del Asiento de Ajuste*/            
               Insert Into #TXMVTO_CNTB_EPAE_0003 ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,            
               NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,            
               TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG,            
               IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, FA_CAMB_DIAR, ST_DIFE_CAMB, 
	       CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, ST_MASI)
               Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @INNU_ANNO,            
               @INNU_MESE, @ISNU_ASTO, @VNNU_SECU, @VDFE_VOUC, @ISCO_CNTA_EMPR, @CSTI_AUXI_EMPR,            
               @CSCO_AUXI_EMPR, NULL, NULL, NULL, 'PAC', @VSCO_MONE_CNTB, 1.000, 'CAR', 0.00,            
               abs(@VNTO_AJUS), 'AJUST x DIF.CAMBIO', 'APR', '  ', 'N', 'N', 1.000000, 'S', 
	       @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, 'S')
               If @@ERROR != 0                 
                 Begin             
                   Close CU_TXMVTO_CNTB_I10_1            
                   Deallocate CU_TXMVTO_CNTB_I10_1            
                   Rollback Tran             
                   Return            
                 End            
               Select @VNNU_SECU = @VNNU_SECU + 1            
               If @ISCO_OPRC_CNTB = @ISCO_OPRC_PEND                          
               Begin          
               Select @VNNU_SECU_PEND = @VNNU_SECU          
               End           
               Select @VNTO_GANA = @VNTO_GANA - abs(ROUND(@VNTO_AJUS,2))            
             End             
         End  /*If( @VNTO_SALD_ORIG < 0 ) And ( @VNTO_SALD_SOLE > 0 )  */            
     End    /*If @VNTO_AJUS != 0 */            
    Fetch CU_TXMVTO_CNTB_I10_1 Into @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR, @CNIM_ORIG_SALD, @CNIM_SOLE_SALD            
   End /* While @@Fetch_status =0 */            
 Close CU_TXMVTO_CNTB_I10_1            
 Deallocate CU_TXMVTO_CNTB_I10_1            
          
-- SUMA TOTAL CTA PERDIDA Y GANANCIA CASO UN SOLA OPERACION          
 If @ISCO_OPRC_CNTB = @ISCO_OPRC_PEND           
 Begin           
  Select @VNTO_PERD = IsNull(@VNTO_PERD, 0) + IsNull(@VNTO_PERD_PEND, 0)          
  Select @VNTO_GANA = IsNull(@VNTO_GANA, 0) + IsNull(@VNTO_GANA_PEND, 0)          
 End           
            
/* Insercion de cuenta de perdida en diferencia de cambio      */            
 If @VNTO_PERD != 0.00            
Begin              
     If @VNTO_PERD > 0.00            
       Begin            
         Select @VSTI_OPER = 'CAR'            
       End                
     Else If @VNTO_PERD < 0.00            
     Begin            
         Select @VSTI_OPER = 'ABO'            
       End            
     /*Comentario : Insercion del Asiento de Ajuste*/            
     Insert Into #TXMVTO_CNTB_EPAE_0003 ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,            
     NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU,            
     FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB,             
     NO_GIRA,ST_GEST, ST_REDO,FA_CAMB_DIAR, ST_DIFE_CAMB, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, ST_MASI,CO_ORDE_SERV)            
     Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @INNU_ANNO, @INNU_MESE,            
     @ISNU_ASTO, @VNNU_SECU, @VDFE_VOUC, @VSCO_CNTA_PERD, @VSTI_AUXI_DCPE, @VSCO_AUXI_DCPE, NULL, NULL,            
     NULL,'PAC', @VSCO_MONE_CNTB, 1.000000, @VSTI_OPER, 0.00, abs(@VNTO_PERD), 'AJUST x DIF.CAMBIO',            
     'APR', '  ', 'N', 'N', 1.000000, 'S', @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, 'S',@VSCO_ORDE_DCPE)
            
     If @@ERROR != 0            
       Begin             
         Rollback Tran            
         Return            
       End            
     Select @VNNU_SECU = @VNNU_SECU + 1            
   End            
            
/* Insercion de cuenta de perdida en diferencia de cambio Pendiente */            
 If @VNTO_PERD_PEND != 0.00 And @ISCO_OPRC_CNTB != @ISCO_OPRC_PEND            
   Begin                  
     If @VNTO_PERD_PEND > 0.00            
       Begin            
         Select @VSTI_OPER = 'CAR'            
       End                
     Else If @VNTO_PERD_PEND < 0.00            
       Begin            
         Select @VSTI_OPER = 'ABO'            
       End            
            
     /*Comentario : Insercion del Asiento de Ajuste*/            
     Insert Into #TXMVTO_CNTB_EPAE_0003 ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,            
     NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU,            
     FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB,             
     NO_GIRA,ST_GEST, ST_REDO,FA_CAMB_DIAR, ST_DIFE_CAMB, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, ST_MASI,CO_ORDE_SERV)
     Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_PEND, @INNU_ANNO, @INNU_MESE,            
     @ISNU_ASTO_PEND, @VNNU_SECU_PEND, @VDFE_VOUC, @VSCO_CNTA_PERD, @VSTI_AUXI_DCPE, @VSCO_AUXI_DCPE, NULL, NULL,            
     NULL,'PAC', @VSCO_MONE_CNTB, 1.000000, @VSTI_OPER, 0.00, abs(@VNTO_PERD_PEND), 'AJUST x DIF.CAMBIO',            
     'APR', '  ', 'N', 'N', 1.000000, 'S', @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, 'S',@VSCO_ORDE_DCPE)            
            
     If @@ERROR != 0            
       Begin             
         Rollback Tran            
         Return            
       End            
     Select @VNNU_SECU_PEND = @VNNU_SECU_PEND + 1            
   End            
            
/* Insercion de cuenta de ganancia en diferencia de cambio */            
 If @VNTO_GANA != 0.00            
   Begin            
    If @VNTO_GANA > 0.00            
       Begin            
         Select @VSTI_OPER = 'CAR'            
       End                    
     Else If @VNTO_GANA < 0.00            
       Begin            
         Select @VSTI_OPER = 'ABO'            
       End            
     /*Comentario :Insercion del Asiento de Ajuste*/            
     Insert Into #TXMVTO_CNTB_EPAE_0003 ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,            
     NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU,            
     FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB,            
     NO_GIRA, ST_GEST, ST_REDO,FA_CAMB_DIAR, ST_DIFE_CAMB, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, ST_MASI,CO_ORDE_SERV)
     Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @INNU_ANNO, @INNU_MESE,            
     @ISNU_ASTO, @VNNU_SECU, @VDFE_VOUC, @VSCO_CNTA_GANA, @VSTI_AUXI_DCGA, @VSCO_AUXI_DCGA, NULL, NULL,            
     NULL,'PAC', @VSCO_MONE_CNTB, 1.000000, @VSTI_OPER, 0.00, abs(@VNTO_GANA), 'AJUST x DIF.CAMBIO',            
     'APR', '  ', 'N', 'N', 1.000000, 'S', @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, 'S',@VSCO_ORDE_DCGA)            
     If @@ERROR != 0                 
       Begin             
         Rollback Tran             
         Return            
       End            
   End            
            
/* Insercion de cuenta de ganancia en diferencia de cambio Pendiente*/            
 If @VNTO_GANA_PEND != 0.00 And @ISCO_OPRC_CNTB != @ISCO_OPRC_PEND            
   Begin            
     If @VNTO_GANA_PEND > 0.00            
       Begin            
         Select @VSTI_OPER = 'CAR'            
       End                    
     Else If @VNTO_GANA_PEND < 0.00            
     Begin            
         Select @VSTI_OPER = 'ABO'            
       End            
            
     /*Comentario :Insercion del Asiento de Ajuste*/            
     Insert Into #TXMVTO_CNTB_EPAE_0003 ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE, NU_ASTO, 
	NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, 
	CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, 
	ST_REDO,FA_CAMB_DIAR, ST_DIFE_CAMB, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, ST_MASI,CO_ORDE_SERV)
     Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_PEND, @INNU_ANNO, @INNU_MESE,            
     @ISNU_ASTO_PEND, @VNNU_SECU_PEND, @VDFE_VOUC, @VSCO_CNTA_GANA, @VSTI_AUXI_DCGA, @VSCO_AUXI_DCGA, NULL, NULL,            
     NULL,'PAC', @VSCO_MONE_CNTB, 1.000000, @VSTI_OPER, 0.00, abs(@VNTO_GANA_PEND), 'AJUST x DIF.CAMBIO',            
     'APR', '  ', 'N', 'N', 1.000000, 'S', @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, 'S',@VSCO_ORDE_DCGA)            
     If @@ERROR != 0                 
       Begin             
         Rollback Tran             
         Return            
    End            
   End            


     Insert Into TXMVTO_CNTB ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE, NU_ASTO, 
	NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, 
	CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, 
	ST_REDO,FA_CAMB_DIAR, ST_DIFE_CAMB, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, ST_MASI,CO_ORDE_SERV)
Select  CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE, NU_ASTO, 
	NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, 
	CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, 
	ST_REDO,FA_CAMB_DIAR, ST_DIFE_CAMB, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, ST_MASI,CO_ORDE_SERV
From #TXMVTO_CNTB_EPAE_0003
            
   Exec SP_TXMVTO_CNTB_I35 @ISCO_EMPR, @ISCO_USUA , @IDFE_USUA, @INNU_CNTB_EMPR,@ISCO_UNID_CNTB,            
     @ISCO_OPRC_CNTB,@INNU_ANNO,@INNU_MESE,@ISNU_ASTO            
            
  If @ISCO_OPRC_CNTB != @ISCO_OPRC_PEND          
   Begin    --- (A)              
   Exec SP_TXMVTO_CNTB_I35 @ISCO_EMPR, @ISCO_USUA , @IDFE_USUA, @INNU_CNTB_EMPR,@ISCO_UNID_CNTB,            
     @ISCO_OPRC_PEND,@INNU_ANNO,@INNU_MESE,@ISNU_ASTO_PEND            
   End -- (A)          
            /*
    Select @VNNU_SECU = MAX(NU_SECU)            
     From TXMVTO_CNTB            
     Where CO_EMPR = @ISCO_EMPR            
     And NU_CNTB_EMPR = @INNU_CNTB_EMPR            
     And CO_UNID_CNTB = @ISCO_UNID_CNTB              
     And CO_OPRC_CNTB = @ISCO_OPRC_CNTB            
     And NU_ANNO      = @INNU_ANNO             
     And NU_MESE  = @INNU_MESE            
     And NU_ASTO      = @ISNU_ASTO   */

    Select @VNNU_SECU = MAX(NU_SECU)            
From #TXMVTO_CNTB_EPAE_0003         
Where CO_OPRC_CNTB = @ISCO_OPRC_CNTB            
            
 If @VNNU_SECU > 1            
   Begin            
     Update TCFECH_PROC Set   
     NU_ULTI_ASTO = Convert(Int, @ISNU_ASTO),  
     CO_USUA_MODI =  @ISCO_USUA,  
     FE_USUA_MODI  = @IDFE_USUA  
     Where CO_EMPR = @ISCO_EMPR And            
     NU_CNTB_EMPR = @INNU_CNTB_EMPR And            
     CO_UNID_CNTB = @ISCO_UNID_CNTB And            
     CO_OPRC_CNTB = @ISCO_OPRC_CNTB and            
     NU_ANNO = @INNU_ANNO And            
     NU_MESE = @INNU_MESE And        
     NU_ULTI_ASTO < Convert(Int, @ISNU_ASTO)        
            
     If @@ERROR != 0                 
       Begin             
         Rollback Tran             
         Return            
       End            
   End            
          
  If @ISCO_OPRC_CNTB != @ISCO_OPRC_PEND          
   Begin    --- (B)              
            /*
    Select @VNNU_SECU_PEND = MAX(NU_SECU)            
     From TXMVTO_CNTB            
     Where CO_EMPR = @ISCO_EMPR            
     And NU_CNTB_EMPR = @INNU_CNTB_EMPR            
     And CO_UNID_CNTB = @ISCO_UNID_CNTB              
     And CO_OPRC_CNTB = @ISCO_OPRC_PEND            
     And NU_ANNO      = @INNU_ANNO            
     And NU_MESE      = @INNU_MESE            
     And NU_ASTO      = @ISNU_ASTO_PEND      */
    Select @VNNU_SECU_PEND = MAX(NU_SECU)            
From #TXMVTO_CNTB_EPAE_0003         
Where CO_OPRC_CNTB = @ISCO_OPRC_PEND                  
            
 If @VNNU_SECU_PEND > 1            
   Begin            
     Update TCFECH_PROC            
     Set NU_ULTI_ASTO = Convert(Int, @ISNU_ASTO_PEND),  
     CO_USUA_MODI =  @ISCO_USUA,  
     FE_USUA_MODI  = @IDFE_USUA  
     Where CO_EMPR = @ISCO_EMPR And        
     NU_CNTB_EMPR = @INNU_CNTB_EMPR And        
     CO_UNID_CNTB = @ISCO_UNID_CNTB And        
     CO_OPRC_CNTB = @ISCO_OPRC_PEND and        
     NU_ANNO = @INNU_ANNO And        
     NU_MESE = @INNU_MESE And        
     NU_ULTI_ASTO < Convert(Int, @ISNU_ASTO_PEND)        
            
     If @@ERROR != 0                 
       Begin             
         Rollback Tran             
    Return            
       End            
   End            
          
 End -- (B)          
            
 ---- Elimina tablas temporales            
-- Drop Table #TWMVTO_CNT1            
-- Drop Table #TWMVTO_CNT2            
Commit Transaction            
Return            
/*-------------------------------- Fin -----------------------------*/











GO
